#include<cstdio>
#define min(x,y) x<y?x:y
int sx,sy,ex,ey,a[25][25],ans=0x3f3f3f3f,dir[4][2]{1,0,-1,0,0,1,0,-1},n;
bool vis[25][25],s,e,er;
void dfs(int,int,int);
int main()
{
	for(int i=0;i<25;i++)
		for(int j=0;j<25;j++)
			a[i][j]=1;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			scanf("%d",&a[i][j]);
			if(a[i][j]==2&&!s)sx=i,sy=j,s=1;
			else er=1;
			if(a[i][j]==3&&!e)ex=i,ey=j,e=1;
			else er=1;
		}
	if(er)
	{
		printf("Error");
		return 0;
	}
	dfs(sx,sy,0);
	if(ans!=0x3f3f3f3f)
		printf("%d",ans);
	else printf("No Answer");
	return 0;
}
void dfs(int x,int y,int step)
{
	if(x==ex&&y==ey)
	{
		ans=min(ans,step);
		return;
	}
	for(int i=0;i<4;i++)
	{
		int nx=x+dir[i][0],ny=y+dir[i][1];
		if(!vis[nx][ny]&&a[nx][ny]!=1)
		{
			vis[nx][ny]=1;
			dfs(nx,ny,step+1);
			vis[nx][ny]=0;
		}
	}
}
